package com.ruicar.afs.cloud.basic.proceeds.mq.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.basic.common.entity.BasicCarInvoice;
import com.ruicar.afs.cloud.common.modules.contract.enums.YesOrNoEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author: Lee
 * @date 2020-05-29 09:31:34 
 * @description 车辆发票申请
 */
@Data
public class ContractCarInvoiceDTO extends ContractMqBaseDataDTO<BasicCarInvoice>{

	/** 合同号 */
	@ApiModelProperty("合同号")
	private String contractNo;
	/** 车辆号码 */
	@ApiModelProperty("车辆号码")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long carId;
	/** VIN码 */
	@ApiModelProperty("VIN码")
	private String carVin;
	/** 开票单位（出卖方） */
	@ApiModelProperty("开票单位（出卖方）")
	private String invoiceUnit;
	/** 最低开票价格 */
	@ApiModelProperty("最低开票价格")
	private BigDecimal invoiceMinAmt;
	/** 发票代码 */
	@ApiModelProperty("发票代码")
	private String invoiceCode;
	/** 发票号码 */
	@ApiModelProperty("发票号码")
	private String invoiceNo;
	/** 开票日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("开票日期")
	private Date invoiceDate;
	/** 发票金额 */
	@ApiModelProperty("发票金额")
	private BigDecimal invoiceAmt;
	/** 开票单位性质 */
	@ApiModelProperty("开票单位性质")
	private String invoiceNature;
	/** 出卖方姓名 */
	@ApiModelProperty("出卖方姓名")
	private String saleName;
	/** 出卖方身份证号 */
	@ApiModelProperty("出卖方身份证号")
	private String saleCertNo;
	/** 出卖方身份证有效期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@ApiModelProperty("出卖方身份证有效期")
	private Date saleCertEndDate;
	/** 是否长期 */
	@ApiModelProperty("是否长期")
	private YesOrNoEnum isLongTerm;
	/** 出卖方手机号 */
	@ApiModelProperty("出卖方手机号")
	private String salePhone;
	/** 纳税人识别号 */
	@ApiModelProperty("纳税人识别号")
	private String taxpayerNo;
	/** 发票税率 */
	@ApiModelProperty("发票税率")
	private Double invoiceRate;

}
